package com.example.demo.mapper;

import com.example.demo.model.ArticleInfo;
import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 郝文雪
 * @date 2022/7/16 13:22
 * @Description Test
 */
@Mapper
public interface UserMapper {
    //查询方法定义完成
    UserInfo getUserById(int id);

      //查询多条数据(单表查询)
    List<UserInfo> getAll();

    //添加用户(返回受影响的行数)
    int add(String username ,String password);

   // 添加用户2（返回的自增id）
    void add2(UserInfo userInfo);
    //添加用户3（使用动态sql）
    int add3(UserInfo userInfo);

    //添加用户4（使用动态sql trim+if）
    int add4(UserInfo userInfo);

    //修改用户（根据id修改用户名，返回受影响行数）
    int update(@Param("id") int id,@Param("username") String username);

    //删除方法返回受影响的行数
    int del(@Param("id") int id);

    //根据名称查询对象
    UserInfo getUserByName(@Param("username") String username);

    //根据时间排序查询所有的用户
    List<UserInfo> getAllOrderByCreatetime(@Param("order") String order);

    //登录方法
    UserInfo login(@Param("username") String username ,@Param("password") String password);

    //根据名称进行模糊查询
    List<UserInfo> getUserLikeName(@Param("username") String username);

    //查询所有的数据（连表查询userinfo & articleifo）
    List<UserInfo> getAll2();

    //根据用户名和密码查询用户列表（使用动态sql where）
    List<UserInfo> getListByNameOrPsw(@Param("username") String username,@Param("password") String password);

    //根据id修改用户信息
    int updateById(UserInfo userInfo);

    //根据id删除用户
    int deleteByIds(List<Integer> ids);
}

